package alogrithm.solution;

/*
 * 翻转句子中单词的顺序。
题目：输入一个英文句子，翻转句子中单词的顺序，但单词内字符的顺序不变。句子中单词以空格符隔开。
为简单起见，标点符号和普通字母一样处理。
例如输入“I am a student.”，则输出“student. a am I”。
 */
public class P10 {
	public static void reverseString(char []array)
	{
		if(array==null)return;
		int i=0,j=array.length-1;
		while(i<j)
		{
			char temp=array[i];
			array[i]=array[j];
			array[j]=temp;
			i++;
			j--;
		}
		i=j=0;
		while(i<array.length)
		{
			while(j<array.length&&array[j]!=' ')j++;
			int temp_i=i,temp_j=j-1;
			while(temp_i<temp_j)
			{
				char temp=array[temp_i];
				array[temp_i]=array[temp_j];
				array[temp_j]=temp;
				temp_i++;
				temp_j--;
			}
			while(j<array.length&&array[j]==' ')j++;
			i=j;
		}
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String s=new String("I am a student.");
		char array[]=s.toCharArray();
		reverseString(array);
		System.out.println(new String(array));

	}

}
